/**
 * Project Name:MyTest
 * Package Name:com.xuwei.rmi
 * author:David
 * Date:2016年6月17日下午8:59:15
 * Copyright (c) 2016, xw123box@126.com All Rights Reserved.
 *
 */
package com.xuwei.ext.rmi;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

/**
 * Client用于连接并访问服务端Server
 * @author David
 * @since 2016年6月17日 下午8:59:15
 * @version 
 * @since JDK 1.6
 */
public class Client {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		//定义一个端口号，该端口号必须与服务端的端口号相同
		int port = 6666;
		//同样定义一个远程地址，该地址为服务端的远程地址，所以与服务端的地址是一样的
		String address = "rmi://localhost:"+port+"/hello";
		
		//在RMI注册表上需要找到对象为HelloInterface的地址，即服务端地址
		try {
			HelloInterface hInterface = (HelloInterface)Naming.lookup(address);
			//一旦客户端找到该服务器地址 则进行连接
			System.out.println("<<<客户端访问成功！");
			//客户端Client调用远程接口里的sayHello方法并打印出来
			System.out.println(hInterface.sayHello("Bob"));
		} catch (MalformedURLException e) {
			System.err.println("错误的地址！");
			e.printStackTrace();
		} catch (RemoteException e) {
			System.err.println("创建远程对象出错！");
			e.printStackTrace();
		} catch (NotBoundException e) {
			System.err.println("未绑定的远程对象！");
			e.printStackTrace();
		}
		
		
	}

}
